package logica.pruebas;
import java.awt.Color;
import java.rmi.RemoteException;

import logica.clases.Coordenada;
import logica.clases.Jugador;
import logica.clases.Pais;
import logica.clases.Partida;
import logica.colecciones.Jugadores;
import logica.colecciones.Mapa;
import logica.colecciones.Partidas;
import logica.datatypes.Jugador.DataJugador_R17;
import logica.datatypes.Partida.DataPartida_R16;
import logica.excepciones.JugadoresException;
import logica.fachadas.FachadaPublico;

public class PruebaFachadaPublico {

	/**
	 * @param args
	 * @throws RemoteException 
	 * @throws JugadoresException 
	 */
	public static void main(String[] args) throws RemoteException, JugadoresException {
		Coordenada coordenada1 = new Coordenada(3,5), coordenada2 = new Coordenada(1,2), coordenada3 = new Coordenada(2,2),
		coordenada4 = new Coordenada(3,2), coordenada5 = new Coordenada(5,3), coordenada6 = new Coordenada(3,6);
		Mapa mapa = new Mapa();
		
		Partidas partidas = Partidas.getInstancia();
		Jugadores jugadores = new Jugadores(2);
		Jugador jug = new Jugador(1, "DD", Color.blue);
		Jugador jugA = new Jugador(2, "AA", Color.gray);
		jugadores.insertar(jug);
		jugadores.insertar(jugA);
		Partida partida = new Partida("Partida1", jugadores);
		System.out.println("Partida creada");
		System.out.println(partida.getCodigo());
		partidas.insert(partida);
		System.out.println("Partida ingresada");
		
		Jugadores jugadores1 = new Jugadores(3);
		Jugador jug1 = new Jugador(1, "Jose", Color.WHITE);
		Jugador jug2 = new Jugador(2, "Pedro", Color.BLACK);
		Jugador jug3 = new Jugador(2, "Maria", Color.BLUE);
		jugadores1.insertar(jug1);
		jugadores1.insertar(jug2);
		jugadores1.insertar(jug3);
		
		Partida partida1 = new Partida("Partida1", jugadores1);
		
		Jugadores jugadores2 = new Jugadores(5);
		Jugador jug4 = new Jugador(1, "Jose", Color.WHITE);
		Jugador jug5 = new Jugador(2, "Pedro", Color.BLACK);
		Jugador jug6 = new Jugador(3, "Maria", Color.BLUE);
		Jugador jug7 = new Jugador(4, "Juan", Color.CYAN);
		Jugador jug8 = new Jugador(5, "Rosa", Color.GRAY);
		jugadores2.insertar(jug4);
		jugadores2.insertar(jug5);
		jugadores2.insertar(jug6);
		jugadores2.insertar(jug7);
		jugadores2.insertar(jug8);
		Partida partida2 = new Partida("Partida2", jugadores2);
		
		Jugadores jugadores3 = new Jugadores(3);
		Jugador jug9 = new Jugador(2, "Pedro", Color.BLACK);
		Jugador jug10 = new Jugador(2, "Maria", Color.BLUE);
		Jugador jug11 = new Jugador(2, "Rosa", Color.GRAY);	
		jugadores3.insertar(jug9);
		jugadores3.insertar(jug10);
		jugadores3.insertar(jug11);
		Partida partida3 = new Partida("Partida3", jugadores3);
		
		partidas.insert(partida1);
		partidas.insert(partida2);
		partidas.insert(partida3);
		
		Pais pais1 = new Pais (1, "Uruguay", coordenada1);
		Pais pais2 = new Pais (2, "Brasil", coordenada2);
		Pais pais3 = new Pais (3, "Mexico", coordenada3);
		Pais pais4 = new Pais (4, "Chile", coordenada4);
		Pais pais5 = new Pais (5, "Argentina", coordenada5);
		Pais pais6 = new Pais (4, "Chile", coordenada6);
		
		mapa.insert(pais1);
		mapa.insert(pais2);
		mapa.insert(pais3);
		mapa.insert(pais4);
		mapa.insert(pais5);
		mapa.insert(pais6);
		
		System.out.println("Partida en curso?: " + partidas.hayPartidaEnCurso());
		partidas.iniciarPartida("Partida1", mapa);
		System.out.println("Se inicia Partida1");
		///////////////////////////////////////////////////////////////////
		
		// TODO Auto-generated method stub
		FachadaPublico publico = new FachadaPublico();
		
		DataJugador_R17[] listaJuadores = publico.listarJugadoresPartida("Partida1");
		System.out.println("Jugadores de Partida1");
		for (int i=0; i< listaJuadores.length;i++){
			System.out.println(listaJuadores[i].getNombre());
		} 
		
		DataPartida_R16[] listaPartidas = publico.listarPartidasRegistradas();
		System.out.println("Partidas Registradas");
		for (int i=0; i< listaPartidas.length;i++){
			System.out.println(listaPartidas[i].getCodigo());
		} 	
		
	}

}
